#pragma once
#include <iostream>
#include <ctime>
#define INFO 1
#define WARNING 2
#define ERROR 3
#define FATAL 4
using std::cout;
using std::endl;
using std::string;
#define log(level, message) __log(#level, message, __FILE__, __LINE__)
inline void __log(string level, string message, string file_name, int line)
{
#ifndef DEBUG
    if (level == "INFO")
    {
        return;
    }
#endif
    cout << '[' << level << ']' << '[' << time(nullptr) << ']' << '[' << message << ']' << '[' << file_name << ']' << '[' << line << ']' << endl;
}